
from PyM import *

def Nm(x,K='',L=''):
    k = prime_field(K_(x))
    if K=='': K = k
    Cx = conjugates(x,K)
    if L=='': s = 1
    else: s = dim(L,K)//len(Cx)
    return product(Cx)**s
    
k = Zn(3); u = 1>>k
[K,a] = extension(k,[1,0,1],'a')
[L,b] = extension(K,[1,0,-1,1],'b')

show( Nm(u), Nm(a), Nm(b), Nm(a*b), Nm(b**2), Nm(a*b**2))

show( Nm(u,K), Nm(a,K))

show( Nm(u,k,K), Nm(a,k,K))

show( Nm(u,L=L), Nm(a,L=L), Nm(b,L=L), Nm(a*b,L=L), Nm(b**2,L=L), Nm(a*b**2,L=L))

show( Nm(u,k,L), Nm(a,k,L), Nm(b,k,L), Nm(a*b,k,L), Nm(b**2,k,L), Nm(a*b**2,k,L))

show( Nm(u,K,L), Nm(a,K,L), Nm(b,K,L), Nm(a*b,K,L), Nm(b**2,K,L), Nm(a*b**2,K,L))